/**
 * 
手写 class 继承
在某网页中，有三种菜单：button menu，select menu，modal menu。

他们的共同特点：

都有 title icon 属性
都有 isDisabled 方法（可直接返回 false）
都有 exec 方法，执行菜单的逻辑
他们的不同点：

button menu，执行 exec 时打印 'hello'
select menu，执行 exec 时返回一个数组 ['item1', 'item2', 'item3']
modal menu，执行 exec 时返回一个 DOM Element <div>modal</div>
请用 ES6 语法写出这三种菜单的 class
 */

class BaseMenu {
  constructor(title, icon) {
    this.title = title;
    this.icon = icon;
  }

  isDisabled() {
    return false;
  }

  exec() {}
}

class ButtonMenu extends BaseMenu {
  constructor(title, icon) {
    super(title, icon);
  }
  exec() {
    console.log("hello");
  }
}

class SelectMenu extends BaseMenu {
  constructor(title, icon) {
    super(title, icon);
  }
  exec() {
    return ["item1", "item2", "item3"];
  }
}

class ModalMenu extends BaseMenu {
  constructor(title, icon) {
    super(title, icon);
  }
  exec() {
    return "返回一个dom";
  }
}
const btnMenu = new ButtonMenu("btn", "btn-icon");
